package com.java.demos.web.Controller;

import com.java.demos.web.Pojo.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;


import java.time.LocalDateTime;

import java.util.List;

/*

    测试请求参数接收
 */
@RestController
public class RequestController {
//    @RequestMapping("/simpleParam")
//    public String simpleParam(HttpServletRequest request){
//        //获取请求参数
//        String name = request.getParameter("name");
//        String ageStr = request.getParameter("age");
//
//        int age = Integer.parseInt(ageStr);
//        System.out.println(name + " : " + age);
//        return "OK";
//    }

    //springboot方式
//    @RequestMapping("/simpleParam")
//    public String simpleParam(String name, Integer age){
//
//        System.out.println(name + " : " + age);
//        return "OK";
//    }

    //如果方法形参名称与请求参数名称不匹配, 可以使用@RequestParam注解
//    @RequestMapping("/simpleParam")
//    public String simpleParam(@RequestParam(name = "name") String username, Integer age){
//        System.out.println(username + " : " + age);
//        return "OK";
//    }

    //简单实体参数
//    @RequestMapping("/simplePojo")
//    public String simplePojo(User user){
//        System.out.println(user);
//        return "OK";
//    }

//    //复杂实体参数
//    @RequestMapping("/complexPojo")
//    public String complexPojo(User user){
//        System.out.println(user);
//        return "OK";
//    }
//
    //数组实体参数
//    @RequestMapping("/ArrayParam")
//    public String ArrayParam(String[] hobby){
//        System.out.println(Arrays.toString(hobby));
//        return "OK";
//    }

    //集合参数
    @RequestMapping("/ListParam")
    public String ListParam(@RequestParam List<String> hobby){
        System.out.println(hobby);
        return "OK";
    }

    //日期时间参数
    @RequestMapping("/DateParam")
    public String DateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
        System.out.println(updateTime);
        return "OK";
    }

    //JSON参数
    @RequestMapping("/jsonParam")
    public  String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "OK";
    }

    //路径参数
    @RequestMapping("/path/{id}")
    public String path1(@PathVariable Integer id){
        System.out.println(id);
        return "OK";
    }

    //路径参数
    @RequestMapping("/path/{id}/{name}")
    public String path2(@PathVariable String name){
        System.out.println(name);
        return "OK";
    }

}
